package br.com.srv.componentes.motorista.dao;

import java.util.List;

import br.com.srv.commons.dao.hibernate.BasicDAOImpl;
import br.com.srv.model.GrupoMotoristaTO;
import br.com.srv.model.MotoristaTO;

public class GrupoMotoristaDAOImpl extends BasicDAOImpl implements GrupoMotoristaDAO {

	public List<GrupoMotoristaTO> buscarGrupoMotoristas(GrupoMotoristaTO grupoMotoristaTO) throws Exception {
		String query = "SELECT grupo FROM GrupoMotoristaTO grupo ";
		
		int count = 0;
		
		if (grupoMotoristaTO.getNome() != null
				&& !grupoMotoristaTO.getNome().equals("")) {
			query = montarQuery(query, count);
			query += "grupo.nome like '" + grupoMotoristaTO.getNome() + "%'";
			count++;
		}
		
		if (grupoMotoristaTO.getCodigo() != null
				&& !grupoMotoristaTO.getCodigo().equals("")) {
			query = montarQuery(query, count);
			query += "grupo.codigo like '" + grupoMotoristaTO.getCodigo() + "%'";
			count++;
		}
		
		if (grupoMotoristaTO.getDescricao() != null
				&& !grupoMotoristaTO.getDescricao().equals("")) {
			query = montarQuery(query, count);
			query += "grupo.descricao like '" + grupoMotoristaTO.getDescricao() + "%'";
			count++;
		}
		
		if (grupoMotoristaTO.getStatus() != null) {
			query = montarQuery(query, count);
			query += "grupo.status = " + grupoMotoristaTO.getStatus();
			count++;
		}
		
		query += " order by grupo.nome";
		
		return findByQuery(query);
	}

	public List<MotoristaTO> buscarMotoristasDoGrupo(Integer id) throws Exception {
		
		String query = "SELECT motorista FROM MotoristaTO motorista ";
		
		if (id != null) {
			query += "WHERE motorista.grupoId = " + id.toString();
		}
		
		List<MotoristaTO> motoristas  = (List<MotoristaTO>)findByQuery(query);
		
		return motoristas;
		
	}
	

	

}
